package com.zm.dao;

import com.zm.domain.QueryVo;
import com.zm.domain.User;

import java.util.List;

public interface IUserDao {
   /**
    *   查询所有方法
    * @return
    */
   List<User> findAll();

   /**
    *  插入(保存)方法
    * @param user
    */
   void  saveUser(User user);

   /**
    * 更新（修改）方法
    * @param user
    */
   void updateUser(User user);

   /**
    * 根据id删除用户
    * @param id
    */
   void deleteUser(Integer id);

   /**
    * 根据id查询一个
    * @param id
    * @return
    */
   User findById(Integer id);
   /**
    * 根据username模糊查询
    */
   List<User> findByName(String userName);

   /**
    * 查询总用户数
    * @return
    */
   int findTotal();

   /**
    * 根据queryvo中的条件查询用户
    * @param vo
    * @return
    */
   List<User> findByVo(QueryVo vo);


   /**
    * 根据传入参数条件
    * @param user 查询条件，可能有用户名，可能有性别，可能有年龄，也坑你没有
    * @return
    */
    List<User> findUserByCondition(User user);

   /**
    * 根据queryVo提供的id集合查询用户信息
    * @param vo
    * @return
    */
    List<User> findUserInIds(QueryVo vo);
}
